## About DirectPlay

The DirectX Team

September 5, 1996

### Introduction

The Microsoft® DirectPlay™ application programming interface (API) for Windows® 95 is a software interface that simplifies application access to communication services. DirectPlay has become a technology family that provides a way for applications to communicate with each other that is independent of the underlying transport, protocol, or online service. Instead of forcing the developer to deal with the differences that each of these connectivity solutions represents, DirectPlay provides well defined, generalized communication capabilities. DirectPlay shields the developer from the underlying complexities of diverse connectivity implementations, freeing them to concentrate on producing a great application.

### DirectPlay Architecture

The DirectPlay architecture is composed of two types of components: DirectPlay itself and the Service Provider. DirectPlay is provided by Microsoft and presents a common interface to the application. The service providers furnish medium-specific communications services as requested by DirectPlay. Anyone, including online services, can supply service providers for specialized hardware and communications media. Microsoft supplies service providers for direct modem-to-modem (TAPI) connections, COM port serial connections, Internet TCP/IP, and IPX protocols with DirectPlay.

The DirectPlay interface hides the complexities and unique tasks required to establish an arbitrary communications link inside the DirectPlay service provider implementation. A application using DirectPlay need only concern itself with the performance of the communications medium (e.g. bandwidth and latency), not whether that medium is being provided by a modem, network, or online service.

DirectPlay supports a peer-to-peer communication model; that is, every participant in the communications session can communicate directly with anyone else and it is expected that each participant is maintaining information on the complete state of the session. There is one participant called the session host which controls new participants joining the session and assigning player and group ID numbers.

DirectPlay features:

- Network independence - the only thing necessary to run the application on another network is to write a service provider for it. No need to change the application at all!
- Service provider model - this allows DirectPlay to take advantage of network capabilities like multicasting to optimize operations like sending messages to all participants.
- Simple send/receive model for exchanging messages between players.
- Player and group management functions - automatic messages generated when new players are created, destroyed, added/deleted from groups, etc.; function to help manage application specific data associated with the player/group.
- Naming of players and groups.
- Remote shared data - changes in remote data are propagated to all the other machines automatically.
- Unicode and ANSI support.
- Keep alive - DirectPlay will monitor when players lose their connection.
- Lobby functions - a matchmaking service can bring together players and automatically start the application on all the participant's machines and connect them to each other in a communications channel. Once the game is in progress the lobby software and the application can exchange information while the session is in progress.